package controlador;

import accesoDatos.DAOReportes;
import com.itextpdf.text.*;
import com.itextpdf.text.pdf.*;
import java.io.*;
import javax.swing.JOptionPane;

public class reporte5
{
    DAOReportes objDao = new DAOReportes();
    Object[][] res1;
    Object[][] res2;
    String var1,var2, dia;

    public void reporte(String area, String mes, String ano) throws Exception
    {
        if(area.equals("Algoritmos criptográficos"))
            var1="65";
        if(area.equals("Algoritmos paralelos"))
            var1="37";
        if(area.equals("Algoritmos y complejidad"))
            var1="36";
        if(area.equals("Análisis numérico"))
            var1="50";
        if(area.equals("Animación por computador"))
            var1="46";
        if(area.equals("Aprendizaje - Redes neuronales"))
            var1="68";
        if(area.equals("Arquitectura para redes en sistemas distribuidos"))
            var1="49";
        if(area.equals("Arquitectura y organización"))
            var1="48";
        if(area.equals("Aspectos de comunicación"))
            var1="39";
        if(area.equals("Bases de datos distribuidas"))
            var1="53";
        if(area.equals("Bases de datos relacionales"))
            var1="52";
        if(area.equals("Bibliotecas digitales"))
            var1="13";
        if(area.equals("Bioinformática"))
            var1="55";
        if(area.equals("Búsqueda por satisfacción de restricciones"))
            var1="21";
        if(area.equals("Computación centrada en la red"))
            var1="1";
        if(area.equals("Computación inalámbrica"))
            var1="30";
        if(area.equals("Computación visual y gráfica"))
            var1="44";
        if(area.equals("Computación Web cliente servidor"))
            var1="28";
        if(area.equals("Construcción de Aplicaciones Web"))
            var1="2";
        if(area.equals("Desarrollo de software centrado en humano"))
            var1="40";
        if(area.equals("Diseño de bases de datos relacionales"))
            var1="26";
        if(area.equals("Diseño de interfaces gráficas de usuario"))
            var1="41";
        if(area.equals("Diseño de software"))
            var1="7";
        if(area.equals("Diseño físico de bases de datos"))
            var1="16";
        if(area.equals("Entornos de desarrollo de software"))
            var1="25";
        if(area.equals("Estructuras discretas"))
            var1="56";
        if(area.equals("Fundamentos de programación"))
            var1="33";
        if(area.equals("Gestión de información"))
            var1="8";
        if(area.equals("Grafos y árboles"))
            var1="57";
        if(area.equals("Hipermedia e hipertexto"))
            var1="9";
        if(area.equals("Ingeniería de software"))
            var1="6";
        if(area.equals("Interacción humano-computador"))
            var1="38";
        if(area.equals("Investigación de operaciones"))
            var1="5";
        if(area.equals("Lenguajes de consulta de bases de datos"))
            var1="12";
        if(area.equals("Lenguajes de programación"))
            var1="18";
        if(area.equals("Máquinas virtuales"))
            var1="66";
        if(area.equals("Métodos numéricos computacionales"))
            var1="3";
        if(area.equals("Minería de datos"))
            var1="43";
        if(area.equals("Modelamiento de datos"))
            var1="51";
        if(area.equals("Modelo de sistemas de información"))
            var1="10";
        if(area.equals("Modelos de simulación"))
            var1="4";
        if(area.equals("Probabilidad discreta"))
            var1="60";
        if(area.equals("Procesamiento de lenguaje natural"))
            var1="31";
        if(area.equals("Procesamiento de transacciones"))
            var1="42";
        if(area.equals("Programación funcional"))
            var1="67";
        if(area.equals("Programación orientada a objetos"))
            var1="34";
        if(area.equals("Programación orientada por eventos"))
            var1="50";
        if(area.equals("Realidad virtual"))
            var1="47";
        if(area.equals("Recuperación de información"))
            var1="14";
        if(area.equals("Redes de comunicación"))
            var1="15";
        if(area.equals("Rendering avanzado"))
            var1="45";
        if(area.equals("Representación de conocimiento"))
            var1="59";
        if(area.equals("Robótica"))
            var1="35";
        if(area.equals("Seguridad en redes"))
            var1="54";
        if(area.equals("Sistemas de bases de datos"))
            var1="58";
        if(area.equals("Sistemas en tiempo real"))
            var1="63";
        if(area.equals("Sistemas inteligentes"))
            var1="20";
        if(area.equals("Sistemas multimedia"))
            var1="32";
        if(area.equals("Sistemas operativos"))
            var1="62";
        if(area.equals("Tecnologías multimedia"))
            var1="29";
        if(area.equals("Tolerancia a fallas"))
            var1="64";
        if(area.equals("Validación de software"))
            var1="27";
        if(area.equals("Visualización"))
            var1="61";

        if(mes.equals("01"))
            var2="Enero";
        if(mes.equals("02"))
            var2="Febrero";
        if(mes.equals("03"))
            var2="Marzo";
        if(mes.equals("04"))
            var2="Abril";
        if(mes.equals("05"))
            var2="Mayo";
        if(mes.equals("06"))
            var2="Junio";
        if(mes.equals("07"))
            var2="Julio";
        if(mes.equals("08"))
            var2="Agosto";
        if(mes.equals("09"))
            var2="Septiembre";
        if(mes.equals("10"))
            var2="Octubre";
        if(mes.equals("11"))
            var2="Noviembre";
        if(mes.equals("12"))
            var2="Diciembre";

        if(mes.equals("01")||mes.equals("03")||mes.equals("05")||mes.equals("07")||mes.equals("08")||mes.equals("10")||mes.equals("12"))
            dia="31";
        if(mes.equals("04")||mes.equals("06")||mes.equals("09")||mes.equals("11"))
            dia="30";
        if(mes.equals("02"))
            dia="28";

        Document document=new Document();
        PdfWriter.getInstance(document,new FileOutputStream("reporte5.pdf"));
        document.open();
        PdfPTable table=new PdfPTable(2);
        PdfPCell cell = new PdfPCell (new Paragraph ("Documentos Catalogados en el área "+area+" para el mes de "+var2+" del año "+ano));
        cell.setBorderColor(BaseColor.WHITE);
        cell.setColspan (2);
        cell.setHorizontalAlignment (Element.ALIGN_CENTER);
        cell.setPadding (12.0f);
        table.addCell (cell);
        cell = new PdfPCell (new Paragraph ("Nombre del Documento"));
        cell.setHorizontalAlignment (Element.ALIGN_CENTER);
        cell.setBorderColor(BaseColor.WHITE);
        cell.setBackgroundColor(BaseColor.LIGHT_GRAY);
        cell.setPadding (6.0f);
        table.addCell (cell);
        cell = new PdfPCell (new Paragraph ("Fecha de Catalogación"));
        cell.setHorizontalAlignment (Element.ALIGN_CENTER);
        cell.setBorderColor(BaseColor.WHITE);
        cell.setBackgroundColor(BaseColor.LIGHT_GRAY);
        cell.setPadding (6.0f);
        table.addCell (cell);

        res1 = objDao.getDatos5(var1,dia,mes,ano);
        res2 = objDao.getCount5(var1,dia,mes,ano);
        String res = res2[0][0].toString();
        int row = Integer.parseInt(res);
        int cont=0;

        if(row!=0)
        {
            for(int i=0;i<row;i++)
            {
                for(int j=0;j<2;j++)
                {
                    String cel = res1[i][j].toString();
                    cell = new PdfPCell(new Paragraph(cel));
                    cell.setBorderColor(BaseColor.WHITE);
                    if(cont%2==0)
                        cell.setBackgroundColor(BaseColor.GRAY);
                    else
                        cell.setBackgroundColor(BaseColor.LIGHT_GRAY);
                    table.addCell(cell);
                }
                cont++;
            }
        }
        else
            JOptionPane.showMessageDialog(null,"No hay Documentos Catalogados en el área "+area+" para el mes de "+var2+" del año "+ano);

        Image image = Image.getInstance ("imagen.jpg");
        document.add(image);
        document.add(table);
        document.close();
    }
}